/* 
 * Copyright 2013-2020 Modeliosoft
 * 
 * This file is part of Modelio.
 * 
 * Modelio is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Modelio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Modelio.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
package org.modelio.metamodel;

import java.util.ArrayList;
import com.modeliosoft.modelio.javadesigner.annotations.objid;

/**
 * <h2>Metamodel changes history since first&nbsp;UML2 implementation</h2>
 * 
 * <p><strong>Modelio 3.8.00&nbsp;- 2.2.02&nbsp;</strong><em>(by&nbsp;chm)</em></p><p>- BpmnCallActivity.CalledOperation: Operation<br />
 * - BpmnCallActivity.CalledBehavior: Behavior<br />
 * - BpmnDataInput.RepresentedParameter: Parameter<br />
 * - BpmnDataOutput.RepresentedParameter: Parameter<br />
 * - BpmnDataState.UmlState: State<br />
 * - BpmnInterface.ImplementationRef: GeneralClass<br />
 * - BpmnItemAwareElement.Type: GeneralClass<br />
 * - BpmnItemAwareElement.InState: State<br />
 * - BpmnItemAwareElement.RepresentedAssociationEnd: AssociationEnd<br />
 * - BpmnItemAwareElement.RepresentedAttribute: Attribute<br />
 * - BpmnItemAwareElement.RepresentedInstance: Instance<br />
 * - BpmnItemDefinition.StructureRef: GeneralClass<br />
 * - BpmnLane.PartitionElement: UmlModelElement<br />
 * - BpmnMessage.Type: GeneralClass<br />
 * - BpmnMessage.InState: State<br />
 * - BpmnOperation.ImplementationRef: Operation<br />
 * - BpmnParticipant.PackageRef: Package<br />
 * - BpmnParticipant.Type: Classifier<br />
 * - BpmnReceiveTask.CalledOperation: Operation<br />
 * - BpmnSendTask.CalledOperation: Operation<br />
 * - BpmnServiceTask.CalledOperation: Operation<br />
 * <em>Note: BPMN -&gt; UML dependencies replaced with MethodologicalLinks.</em></p><p><strong>Modelio 3.7.01&nbsp;- 2.2.01&nbsp;</strong><em>(by&nbsp;cma)</em></p><p>+ Message.Sequence : String : sequence number for messages, to be updated with MessageSequencer facility.</p><p><em>Note: previous Modelio version leak InteractionFragments and Messages when deleting Lifelines.</em></p><p><strong>Modelio Unicorn&nbsp;(3.7)&nbsp;- 2.2.0&nbsp;</strong><em>(by&nbsp;cma)</em></p><p><em>BPMN metamodel changes to remove &quot;BpmnBehavior&quot; that&nbsp;users (PHD) don&#39;t want to see.</em></p><p>-&nbsp;BpmnBehavior (existing instances are transmutted to&nbsp;BpmnSharedDefinitions if not empty)</p><p>+ BpmnSharedDefinitions</p><p># RootElement renamed BpmnSharedElement</p><p># BpmnProcess ^ Behavior (from UML) instead of BpmnBehavior</p><p># BpmnCollaboration&nbsp;^ Behavior (from UML)&nbsp;instead of BpmnBehavior</p><p># BpmnMessage ^ SharedElement (was BpmnBaseElement)</p><p>- BpmnProcess.Caller : &nbsp;BpmnCallActivity,&nbsp;&nbsp;to avoid clash with <em>Behavior.Caller : CallBehaviorAction&nbsp;</em>.&nbsp;Use inherited&nbsp;<em>Behavior.BpmnCaller :&nbsp;BpmnCallActivity </em>instead.</p><p>- BpmnCallActivity.CalledProcess : BpmnProcess, use <em>BpmnCallActivity.CalledBehavior</em></p><p>+ BpmnProcess.DefinitionalCollaboration : BpmnCollaboration[0..1]<br />
 * &nbsp; &nbsp; &nbsp;opposite : BpmnCollaboration.DefinedProcess : BpmnProcess[0..1]</p><p><strong>Modelio Unicorn&nbsp;(3.7)&nbsp;- 2.1.0&nbsp;</strong><em>(by&nbsp;cma)</em></p><p># BpmnProcess.Participant : 0..1 BpmnParticipant : cardinality change to &#39;*&#39;</p><p># BpmnProcess.LaneSet : * BpmnLaneSet&nbsp;: cardinality change to &#39;0..1&#39;</p><p>BPMN metamodel changes to better conform to the official spec.</p><p>&quot;Pools&quot; were wrongly interpreted as a BpmnLaneSet containing one BpmnLane. They are changed to a BpmnParticipant referencing one BpmnProcess. Existing BpmnProcess containing many &quot;Pools&quot; must be splitted, and a BpmnCollaboration must reference all these process with BpmnParticipants.</p><p><strong>Modelio Toutatis (3.6.1)&nbsp;- 2.0.0&nbsp;</strong><em>(by&nbsp;cma)</em></p><p>Infrastructure and Analyst metamodel have been split away to separate metamodels.</p>
 * 
 * <ul>
 * 	<li>+&nbsp;UmlModelElement deriving from&nbsp;Infrastructure.ModelElement . This is the new parent metaclass for elements deriving from&nbsp;Infrastructure.ModelElement in this metamodel fragment.</li>
 * 	<li>Project now derives from Infrastructure.AbstractProject</li>
 * </ul>
 * 
 * <p><strong>Modelio Toutatis (3.6)&nbsp;- 1.1.2&nbsp;</strong><em>(by&nbsp;chm)</em></p><p>- NamespaceUse</p><p><strong>Modelio Toutatis (3.6)&nbsp;- 1.1.1&nbsp;</strong><em>(by&nbsp;chm)</em></p><p>+DynamicPropertyDefinition&nbsp;&nbsp;<em>a PropertyDefinition that is not stored in the model itself, but rather dynamically calculated.</em></p><p>+AbstractProject : regroup all composition tree root metaclasses</p><p><em>#Project.Model : cardinality changed from 1 to *</em></p><p><em><strong>Modelio Shenlong (3.5) - 1.1.0 </strong><em>(by phv)</em></em></p><p><em>+TestContainer <em>an AnalystContainer specialization for test management </em></em></p><p><em>+Test <em>an AnalystItem specialization for test management</em></em></p><p><strong>Modelio 3.4 - 9025 </strong><em>(by&nbsp;phv)</em></p><p>+RiskContainer &nbsp;<em>an AnalystContainer specialization for risk&nbsp;management&nbsp;</em></p><p>+Risk <em>an AnalystItem specialization for risk management</em></p>
 * 
 * <hr />
 * <p><strong><strong>Modelio 3.3 - 9024: 28/10/2014</strong></strong></p><p>-ModuleParameter.Type<br />
 * #ModuleParameter.AssociatedType -&gt; ModuleParameter.Type</p><p>#ModuleParameter.SetName -&gt; ModuleParameter.GroupName<br />
 * +ModuleParameter.EnumType : Enumeration<br />
 * +ModuleParameter.DefaultValue : String<br />
 * -ModuleParameterType.TYPE_PARAM_FILE_OPEN<br />
 * -ModuleParameterType.TYPE_PARAM_FILE_SAVE<br />
 * +ModuleParameterType.TYPE_PARAM_INTEGER</p>
 * 
 * <hr />
 * <p><strong>Modelio 3.3 - 9023: 23/10/2014</strong></p><p>&nbsp;#Note</p><p>&nbsp;+ MimeType: string</p><p>&nbsp;</p><p><strong>Modelio 3.2 - 9022: 27/08/2014</strong></p><p>&nbsp;# BusinessRule, Goal, Requirement, Term, GenericAnalystElement are now CMS nodes</p><p>&nbsp;+ ComponentRealization</p><p>&nbsp;- BusinessRule.Version : this attribute is already on AnalystElement</p><p>&nbsp;- Goal.Version : this attribute is already on AnalystElement</p><p>&nbsp;</p><p><strong>Modelio 3.2 - 9021: 15/01/2014 :</strong></p><p>&nbsp;+ NoteType.MimeType : String</p><p>&nbsp;</p><p><strong>Modelio 3.1 - 9020: 28/11/2013 :</strong></p><p>&nbsp;Added generic analyst element that must be stereotyped, and possibility</p><p>&nbsp;to archive versions of analyst elements without using SVN.</p><p>&nbsp;+ GenericAnalystElement (must be stereotyped)</p><p>&nbsp;+ GenericAnalystContainer</p><p>&nbsp;+ Requirement.ArchivedRequirementVersion : Requirement [*]</p><p>&nbsp;+ Requirement.LastRequirementVersion : Requirement [0..1]</p><p>&nbsp;+ Goal.ArchivedGoalVersion : Goal [*]</p><p>&nbsp;+ Goal.LastGoalVersion :&nbsp; [0..1]</p><p>&nbsp;+ BusinessRule.ArchivedRuleVersion : BusinessRule [*]</p><p>&nbsp;+ BusinessRule.LastRuleVersion : BusinessRule [0..1]</p><p>&nbsp;+ Term.ArchivedTermVersion : Term [*]</p><p>&nbsp;+ Term.LastTermVersion : Term [0..1]</p><p>&nbsp;+ AnalystElement.Version : integer</p><p>&nbsp;+ Goal.Version : integer</p><p>&nbsp;+ BusinessRule.Version : integer</p><p>&nbsp;</p><p><strong>Modelio 3.1 - 9019: 08/11/2013 :</strong></p><p>&nbsp;+ QueryDefinition#UsingAdditions</p><p>&nbsp;</p><p><strong>Modelio 3.1 - 9018: 11/10/2013 :</strong></p><p>&nbsp;Added matrixes metamodel</p><p>&nbsp;+ MatrixDefinition</p><p>&nbsp;+ MatrixValueDefinition</p><p>&nbsp;+ QueryDefinition</p><p>&nbsp;+ ExternProcessor</p><p>&nbsp;</p><p><strong>Modelio Phoenix 3.0 - 9017: 04/09/2013</strong></p><p>&nbsp;- Signal.BrowseBase</p><p>&nbsp;</p><p><strong>Modelio Phoenix 3.0 - 9016: 17/07/2013</strong></p><p>&nbsp;# LinkEnd.Opposite: is now shared composition</p><p>&nbsp;# LinkEnd.OppositeOwner: is no longer a shared composition</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9015: 14/06/2013</strong></p><p>&nbsp;#Stereotype.Label -&gt; Stereotype.LabelKey</p><p>&nbsp;#NoteType.Label -&gt; NoteType.LabelKey</p><p>&nbsp;#TagType.Label -&gt; TagType.LabelKey</p><p>&nbsp;#ExternDocumentType.Label -&gt; ExternDocumentType.LabelKey</p><p>&nbsp;- LocalNote</p><p>&nbsp;- LocalTaggedValue</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9014: 28/05/2013:</strong></p><p>&nbsp;- AnalystContainer.Type</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9013: 22/04/2013:</strong></p><p>&nbsp;- AnalystContainer.DefaultSet</p><p>&nbsp;# AnalystPropertyTable.Owner -&gt; AnalystPropertyTable.AnalystOwner</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9012: 12/04/2013:</strong></p><p>&nbsp;- AnalystProject.Represented</p><p>&nbsp;- Project.RootRequirement</p><p>&nbsp;# AnalystProject.DictionaryRoot set to *</p><p>&nbsp;# AnalystProject.RequirementRoot set to *</p><p>&nbsp;# AnalystProject.GoalRoot set to *</p><p>&nbsp;# AnalystProject.BusinessRuleRoot set to *</p><p>&nbsp;# Stereotype.Child is an Association instead of an Aggregation</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9011: 13/03/2013:</strong></p><p>&nbsp;+ Connector</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9010: 5/03/2013:</strong></p><p>&nbsp;#PropertyBaseType enumaration: added literals: Text, Unsigned, RichText, Date, Time, Element</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9009: 18/02/2013:</strong></p><p>&nbsp;# metamodel.uml.analyst : metamodel.analyst</p><p>&nbsp;+ AnalystElement</p><p>&nbsp;+ AnalystContainer</p><p>&nbsp;+ AnalystItem</p><p>&nbsp;+ BusinessRule</p><p>&nbsp;+ BusinessRuleContainer</p><p>&nbsp;+ Goal</p><p>&nbsp;+ GoalContainer</p><p>&nbsp;- Project.Installed</p><p>&nbsp;- RequirementElement</p><p>&nbsp;- DictionnaryElement</p><p>&nbsp;- Term.Definition</p><p>&nbsp;# RequirementElement.Text =&gt; AnalystItem.Definition</p><p>&nbsp;- Dictionary.Text</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9008: 31/01/2013:</strong></p><p>&nbsp;+ Association</p><p>&nbsp;+ CommunicationChannel</p><p>&nbsp;+ Link</p><p>&nbsp;+ AssociationEnd.Association</p><p>&nbsp;# ClassAssociation.AssociationPart: Association</p><p>&nbsp;# InformationFlow.RealizingLink: Link</p><p>&nbsp;# InformationFlow.Channel: Association</p><p>&nbsp;# InformationFlow.RealizingCommunication: CommunicationChannel</p><p>&nbsp;- NaryLink.Provider</p><p>&nbsp;- NaryLink.Consumer</p><p>&nbsp;+ NaryLinkEnd.Provider</p><p>&nbsp;+ NaryLinkEnd.Consumer</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9007: 21/11/2012:</strong></p><p>&nbsp; # AssociationEnd.Changeable -&gt; AssociationEnd.IsChangeable</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9006: 12/11/2012</strong></p><p>&nbsp;- Nary links:</p><p>&nbsp; + NaryLinkEnd</p><p>&nbsp; + NaryConnectorEnd</p><p>&nbsp; + Instance.OwnedNaryEnd</p><p>&nbsp; + ProvidedInterface.NaryConsumer</p><p>&nbsp; + RequiredInterface.NaryProvider</p><p>&nbsp; + NaryLink.NaryConsumer</p><p>&nbsp; + NaryLink.NaryProvider</p><p>&nbsp; + NaryLink.Sent</p><p>&nbsp; + NaryLink.RealizedInformationFlow</p><p>&nbsp; + CommunicationMessage.NaryChannel</p><p>&nbsp; # NaryLinkEnd.NaryLinkEnd</p><p>&nbsp; - LinkEnd.NaryLinkEnd</p><p>&nbsp; # Interaction is a CMS node</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9005: 07/11/2012</strong></p><p>&nbsp;- Property tables metamodel:</p><p>&nbsp;+ created infrastructure.properties package</p><p>&nbsp;+ PropertyTable ^ Element</p><p>&nbsp;+ PropertyBaseType enumeration (Boolean, Enumerate, Float, Integer, String)</p><p>&nbsp;+ PropertyDefinition.BaseType : PropertyBaseType</p><p>&nbsp;+ TypedPropertyTable ^ PropertyTable</p><p>&nbsp;+ LocalPropertyTable ^ PropertyTable: will replace LocalTaggedValue and LocalNote</p><p>&nbsp;+ ModuleComponent.DefinedPropertyType : PropertyType</p><p>&nbsp;+ Stereotype.DefinedTable : PropertyTableDefinition</p><p>&nbsp;+ MetaclassReference.DefinedTable : PropertyTableDefinition</p><p>&nbsp;- PropertyValue</p><p>&nbsp;# Property --&gt; PropertyDefinition</p><p>&nbsp;# PropertySet --&gt; PropertyTableDefinition</p><p>&nbsp;# PropertyValueSet -- &gt;AnalystPropertyTable , inherits from TypedPropertyTable</p><p>&nbsp;# AnalystProject.Properties --&gt; AnalystProject.PropertyRoot</p><p>&nbsp;# Moved :</p><p>&nbsp;&nbsp; - PropertyType :</p><p>&nbsp;&nbsp; - PropertyEnumerationLitteral :</p><p>&nbsp;&nbsp; - PropertyDefinition :</p><p>&nbsp;&nbsp; - EnumeratedPropertyType :</p><p>&nbsp;&nbsp; - PropertyTableDefinition :</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from : reference.org.modelio.metamodel.uml.requirements</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to : reference.org.modelio.metamodel.uml.infrastructure.properties</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9004: 19/10/2012</strong></p><p>&nbsp;+ Navigability eumeration</p><p>&nbsp;# AssociationEnd.Navigable -&gt; AssociationEnd.Navigability</p><p>&nbsp;# LinkEnd.IsNavigable -&gt; LinkEnd.Navigability</p><p>&nbsp;</p><p><strong>&nbsp;Modelio Phoenix - 9003: 18/10/2012</strong></p><p>&nbsp; - Stereotype.BaseClass -&gt; Class [0..1]</p><p>&nbsp; - MetaclassReference.Referenced -&gt; Class [0..1]</p><p>&nbsp; # AssociationEnd.Owner -&gt; AssociationEnd.Source</p><p>&nbsp; # LinkEnd.Linked -&gt; LinkEnd.Target</p><p>&nbsp; # LinkEnd.Instance -&gt; LinkEnd.Source</p><p>&nbsp; # LinkEnd.OppositeLinkEnd -&gt; LinkEnd.Opposite</p><p>&nbsp; # Instance.Conection -&gt; Instance.OwnedEnd</p><p>&nbsp; # Instance.TargetingLinkEnd -&gt; TargetingEnd</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9002: 18/09/2012</strong></p><p>&nbsp; # Module renamed ModuleComponent</p><p>&nbsp; # SoModuleState renamed ModuleState</p><p>&nbsp; # ConfigParam renamed ModuleParameter</p><p>&nbsp; # ConfigParamType renamed ModuleParameterType</p><p>&nbsp; - SoVisibilityfilter</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9001: 09/2012</strong></p><p>&nbsp; - DiagramContainer</p><p>&nbsp; # Project (diagramRoot is now a DiagramSet)</p><p>&nbsp; # ModelElement (model elements are now the owners of diagrams)</p><p>&nbsp;</p><p><strong>Modelio Phoenix - 9000 :&nbsp; 02/2012</strong></p><p>&nbsp; - Association</p><p>&nbsp; - Link</p><p>&nbsp; - CommunicationChannel</p><p>&nbsp; + AssociationEnd.opposite -&gt; AssociationEnd [0..1]</p><p>&nbsp; + AssociationEnd.target -&gt; Classifier [0..1]</p><p>&nbsp; - AssociationEnd.Connection -&gt; Association</p><p>&nbsp; + StruturalFeature</p><p>&nbsp; + BehavioralFeature</p><p>&nbsp; + NaryAssociationEnd</p><p>&nbsp; + NaryAssociation</p><p>&nbsp; # AssociationEnd (=&gt; redesigned)</p><p>&nbsp; # LinkEnd (=&gt; redesigned)</p><p>&nbsp;</p><p><strong>Modelio 2.2 - 8020 :&nbsp; 24/04/2012</strong></p><p>&nbsp; + Port.PortDirection : PortOrientation [1..1]</p><p>&nbsp; + PortOrientation enumeration { PortNone, PortIn, PortOut, PortInOut}</p><p>&nbsp;</p><p><strong>Modelio 2.1 - 8008 :&nbsp; 02/11/2011</strong></p><p>&nbsp; + ExternDocumentType ( copy of NoteType + Icon : string [0..1] + Image : string [0..1] )</p><p>&nbsp; + ExternDocument.Type : ExternDocumentType [1..1]</p><p>&nbsp;</p><p><strong>Modelio 2.1 - 8007 : &gt; 25/10/2011</strong></p><p>&nbsp; - LinkTextType enumeration</p><p>&nbsp;</p><p>&nbsp; - NoteType.Tools : string</p><p>&nbsp; - NoteType.Format : string</p><p>&nbsp; - Stereotype.SmallIcon : string</p><p>&nbsp; - Stereotype.dynamicMetaClass : boolean</p><p>&nbsp;</p><p>&nbsp; + ExternDocument ^ ModelElement</p><p>&nbsp; + CompositeStructureDiagram ^ StaticDiagram</p><p>&nbsp;</p><p>&nbsp; + ModelElement.Document : ExternDocument[*]</p><p>&nbsp; + Constraint.Language : string</p><p>&nbsp; + Port.IsConjugated : boolean</p><p>&nbsp; + Parameter.IsOrdered : boolean</p><p>&nbsp; + Parameter.IsUnique : boolean</p><p>&nbsp;</p><p>&nbsp; + BpmnItemAwareElement.Type : GeneralClass</p><p>&nbsp; + BpmnItemAwareElement.InState : State</p><p>&nbsp; + BpmnMessage.Type : GeneralClass</p><p>&nbsp; + BpmnMessage.InState : State</p><p>&nbsp; + BpmnServiceTask.CalledOperation : Operation</p><p>&nbsp; + BpmnSendTask.CalledOperation : Operation</p><p>&nbsp; + BpmnReceiveTask.CalledOperation : Operation</p><p>&nbsp;</p><p>&nbsp; # BehaviorParameter.Effect, IsException, IsStream ==&gt; moved on Parameter</p><p>&nbsp;</p><p>&nbsp; JNI glue : trying to support blob attributes into string attributes.</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8006 : &nbsp;&nbsp;29/04/2011</strong></p><p>&nbsp;+ metamodel.newDiagramsModel.ClassDiagram</p><p>&nbsp;+ metamodel.newDiagramsModel.CommunicationDiagram</p><p>&nbsp;+ metamodel.newDiagramsModel.DeploymentDiagram</p><p>&nbsp;+ metamodel.newDiagramsModel.ObjectDiagram</p><p>&nbsp;+ metamodel.newDiagramsModel.StateMachineDiagram</p><p>&nbsp;+ metamodel.newDiagramsModel.UseCaseDiagram</p><p>&nbsp;- metamodel.uml.behaviorModel.stateMachineModel.PseudoState</p><p>&nbsp;- metamodel.uml.behaviorModel.stateMachineModel.UML2PseudoState</p><p>&nbsp;</p><p>&nbsp;JONI API modifications:</p><p>&nbsp; All IXxxx metamodel java interfaces have been moved into a hierarchy of packages according to their diagram types</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8005 : </strong></p><p>+ StateMachine.EntryPoint : EntryPointPseudoState [*]</p><p>+ StateMachine.ExitPoint : ExitPointPseudoState [*]</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8004 : </strong></p><p>- InternalProduct</p><p>- ExternalProduct</p><p>+ DiagramContainer</p><p>+ DiagramSet</p><p>+ Project.DiagramRoot [1]: DiagramContainer</p><p>+ AbstractDiagram is now owned by the Diagramcontainer</p><p>+ AbstractDiagram.Owner [1] : DiagramContainer</p><p>+ AbstractDiagram.ReferencingSet[*] :DiagramSet</p><p># AbstractDiagram derives from ModelElement instead of InternalProduct</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8003 : </strong></p><p>+ Added BPMN metamodel</p><p>- BPMNEvent</p><p>- Artifact.Obsolete_Resident : ModelElement</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8002 : </strong></p><p># ValuePin inherits from InputPin instead of Pin</p><p>&nbsp;</p><p><strong>Modelio 2.0 - 8001 : </strong></p><p>+ ExpansionNode</p><p>+ ExpansionRegion</p><p>+ ExceptionHandler</p><p>+ ValuePin</p><p>&nbsp;</p><p><strong>Modelio 1.2 - 7008 : </strong></p><p>No change, just to force modules to update.</p><p>&nbsp;</p><p><strong>Modelio 1.1.1 &amp; 1.2 - 7007 :</strong></p><p>+ PropertyContainer ^ ModelElement, CMS node</p><p># RequirementProject --&gt; AnalystProject</p><p># RequirementProject.DefinedPropertySet --&gt; PropertyContainer.DefinedPropertySet</p><p># RequirementProject.DefinedPropartyType --&gt; PropertyContainer.DefinedPropertyType</p><p>+ AnalystProject.Properties : PropertyContainer</p><p>+ AnalystProject.RootGoal : RequirementContainer</p><p>+ AnalystProject.RootBusinessRule : RequirementContainer</p><p>&nbsp;</p><p><strong>Modelio 1.1 - 7006 : </strong></p><p>+ NoteType.Label : String</p><p>+ TagType.Label : string</p><p>&nbsp;</p><p><strong>Modelio 1.1 - 7005 :</strong></p><p>deleted the SO model and generation product model</p><p>- SoPointOfView, SoTextType, SoSpecDirective, SoStereotype, SoClass, ...</p><p>- SoElement, SoConfiguration, SoProject, SoSite, So....&nbsp;&nbsp;&nbsp;&nbsp; only SoBase remains</p><p>- Document</p><p>-&nbsp;MpGenProduct, ReservedClass, Reserved**</p><p># SoModule ---&gt; Module</p><p># PointOfView ---&gt; Profile</p><p># Stereotype ^ ModelElement ---&gt; Stereotype ^ ModelElement</p><p># SoBase.project : SoProject ---&gt; SoBase.project : Project</p><p># Stereotype.Context : PointOfView ---&gt; Stereotype.Owner : Profile</p><p>- Stereotype.StereotypeConstraint : Constraint</p><p>- Stereotype.RequiredNote : NoteType</p><p>- Stereotype.RequiredTag : TagType</p><p>+ Stereotype.DefinedTagType : TagType [*]</p><p>+ Stereotype.DefinedNoteType : NoteType [*]</p><p>- TagType.BaseClass:String ---&gt; TagType.OwnerProfile[0..1] + TagType.OwnerReference : MetaclassReference[0..1]</p><p>- TagType.Context : PointOfView</p><p># TagType.Attributed : Stereotype ---&gt; TagType.OwnerStereotype[0..1] + TagType.OwnerReference : MetaclassReference[0..1]</p><p>- NoteType.BaseClass : String ---&gt; NoteType.OwnerProfile[0..1] + NoteType.OwnerReference : MetaclassReference[0..1]</p><p>- NoteType.Context : PointOfView</p><p># NoteType.Attributed : Stereotype ---&gt; NoteType.OwnerStereotype[0..1] + NoteType.OwnerReference : MetaclassReference[0..1]</p><p>- Module.Name ---&gt; ModelElement.Name</p><p>- Module.moduleIhmName : string</p><p>- Module.moduleDescr : string</p><p>- Module.SofteamModule : boolean</p><p>- Module.hideParents : boolean</p><p>- Module.userData : string</p><p>- Module.moduleContext : string</p><p># Module.modularViewPoint :SoPointOfView --&gt; Module.OwnedProfile : Profile [*]</p><p>- Project.Selected : PointOfView</p><p>+Project.Installed : Module</p><p>+MetaclassReference</p><p>+MetaclassReference.DefinedNoteType : NoteType [*]</p><p>+MetaclassReference.DefinedTagType : TagType [*]</p><p>+Profile.OwnedReference : MetaclassReference[*]</p><p>&nbsp;</p><p><strong>Modelio 1.0 - 7004 :</strong></p><p>SoModule state</p><p>+ SoModule.State : ModuleState (enum)</p><p>- SoModule.TargetReceiverBase : string</p><p>&nbsp;</p><p><strong>Hades - 7003 :</strong></p><p>State machine changes:</p><p>+ Region</p><p>- StateMachine.TopStates : State</p><p>- StateMachine.TopPseudoStates : AbstractPseudoState</p><p># StateMachine.Top : State --&gt; StateMachine.Top : Region</p><p># State.Sub : State ---&gt; State.??? : Region</p><p>- State.pseudoParent : StateMachine</p><p># State.Represented ---&gt; Region.Represented : StateMachine</p><p>- State.Part : AbstractPseudoState : merged with Sub : State into Region.Sub : StateVertex</p><p>+ State.EntryPoint : EntryPointPseudoState</p><p>+ State.ExistPoint : ExitPointPseudoState</p><p>&nbsp;</p><p><strong>Hades - 7002 : 25/07/2008 :</strong></p><p>State machine model changes + addons on Stereotype</p><p>+ new &#39;FinalState&#39; metaclass</p><p>+ new &#39;Stereotype.Label: String&#39; attribute</p><p>+ new &#39;SoStereotype.Label: String&#39; attribute</p><p>- deleted &#39;Condition&#39; metaclass : associations to condition have been replaced by String attributes</p><p># &#39;Transition.Guard : Condition&#39; association replaced by &#39;Transition.Guard : String&#39; attribute</p><p># &#39;Transition.Post: Condition&#39; association replaced by &#39;Transition.PostCondition: String&#39; attribute</p><p># &#39;ConnectionPointReference.Entry&#39; cardinality changed from &#39;*&#39; to &#39;0..1&#39;</p><p># &#39;ConnectionPointReference.Exit&#39; cardinality changed from &#39;*&#39; to &#39;0..1&#39;</p><p># &#39;EntryPointPseudoState.Connection&#39; cardinality changed from &#39;0..1&#39; to &#39;*&#39;</p><p># &#39;ExitPointPseudoState.Connection&#39; cardinality changed from &#39;0..1&#39; to &#39;*&#39;</p><p># &#39;StateKind.FinalState&#39; enumeration value renamed &#39;StateKind.OldFinalState&#39; to avoid name collisions</p><p>&nbsp;</p><p><strong>Hades - 7001 :</strong></p><p>Identifiers are now 128 bits UUID, no more site number, no more project counter, no more duplicate identifier :-)))</p><p># SsObject.MSiteIdent : SmInt64 ---&gt; SsObject.MSiteIdent : TUUID</p><p>- SsObject.RootIdent : SmInt64</p><p>- SmIdentifier</p><p>- SeObjectNum</p><p>- *.SiteIdentifier : SmIdentifier</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6208: 14/03/2008 : </strong></p><p># InformationFlow.RealizingCommunicationMessage : CommunicationMessage ----&gt; InformationFlow.RealizingCommunicationChannel : CommunicationChannel</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6207: 13/12/2007 :</strong></p><p>Separate metamodel for communication diagrams:</p><p>- Message.Channel</p><p>- Message.SequenceNumber</p><p>+ CommunicationInteraction</p><p>+ CommunicationNode</p><p>+ CommunicationChannel</p><p>+ CommunicationMessage</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6206: 11/12/2007 : </strong></p><p># Message.Channel : Connector ---&gt; Message.Channel : Link</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6205: ~??/09/2007 :</strong></p><p>VERSION ROLLBACKED TO 6.1 thanks to &quot;Comit&eacute; de Pilotage Produit&quot;</p><p>&nbsp;</p><p><strong>6.2&nbsp;&nbsp;&nbsp; - 6205: 11/06/2007 :</strong></p><p>+ Added SequenceDiagram</p><p>+ InteractionFragment.LineNumber</p><p>+ InteractionUse.EndLineNumber</p><p>+ InteractionOperand.EndLineNumber</p><p>+ StateInvariant.EndLineNumber</p><p>- ActivityGroup.ContainedNode : ActivityNode</p><p>+ Partition.ContainedNode : ActivityNode(composition)</p><p>+ ActivityDiagram.IsVertical : boolean = false</p><p># ActivityNode.ContainerGroup : ActivityGroup[*] ---&gt; ActivityNode.OwnerPartition : Partition [0..1]</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p><strong>6.2&nbsp;&nbsp;&nbsp; - 6205: 11/06/2007 :</strong></p><p>VERSION OFFICIALLY CHANGED TO 6.2.00</p><p>TOOL_VERSION is no more defined in obasic but in the makefile</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6204: 16/05/2007 :</strong></p><p># Clause was abstract, made it concrete (no dictionary change)</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6204: 10/05/2007 :</strong></p><p># ForkNode &amp; JoinNode merged into ForkJoinNode</p><p># DecisionNode &amp; MergeNode merged into DecisionMergeNode</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6203: 09/05/2007 :</strong></p><p>+ InputPin</p><p>+ OutputPin</p><p># Pin.Value moved on InputPin</p><p># Pin.IsSelf moved on InputPin</p><p># Pin.Inputing : ActivityAction moved on InputPin</p><p># Pin.Outputing : ActivityAction moved on OutputPin</p><p>- ActivityParameterNode.LinkedParameter : BehaviorParameter , was duplicate of ObjectNode.RepresentedRealParameter:BehaviorParameter</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6202: 06/04/2007 :</strong></p><p>+ Clause</p><p>+ Clause.Body : ActivityNode</p><p>+ ConditionalNode.OwnedClause</p><p>- ConditionalNode.Test</p><p>+ ObjectNode.RepresentedAttribute</p><p>+ ObjectNode.RepresentedRole</p><p>- InstanceNode.Object</p><p>+ Behavior.OwnedCollaboration : Collaboration</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6201: 02/04/2007 :</strong></p><p>- AcceptEventAction</p><p>+ AcceptChangeEventAction</p><p>+ AcceptTimeEventAction</p><p>+ AcceptSignalAction</p><p>+ AcceptCallEventAction</p><p>&nbsp;</p><p><strong>6.1 RIO - 6200: 29/03/2007 :</strong></p><p>First time MM version is changed for RIO although MM changes have already been commited.</p><p>Official tool version has not been yet changed.</p><p>+ Activity, sequence, information and state machine model</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6104: 29/08/2006 :</strong></p><p>BindableInstance.RepresentedFeature cardinality changed from 0..* to 0..1</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6103: 28/08/2006 : </strong></p><p>added SoModule.DependsOn --&gt; SoModule.Impacted dependency</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6102: 16/06/2006 :</strong></p><p>added SoModule.javaClassName attribute</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6101: 06/06/2006 :</strong></p><p>Remove Communication (replaced by Association &amp; AssociationEnd), XSLT migration necessary</p><p>&nbsp;</p><p><strong>6.1&nbsp;&nbsp;&nbsp; - 6100: 17/05/2006 :</strong></p><p>Remove SoMetaProject (and some others in the Soxxx model (smOutil) )</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 612 : 18/01/2006 :</strong></p><p>RequiredInterface.Required --&gt; RequiredInterface.RequiredElement ( was unusable with J)</p><p>ProvidedInterface.Provided --&gt; ProvidedInterface.ProvidedElement</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 611 : 23/11/2005:</strong></p><p>Port didn&#39;t inherit from BindableInstance</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 610 : 18/11/2005:</strong></p><p>+BindableInstance,</p><p>Instance contiennent des BindableInstance,</p><p>Port herite de BindableInstance,</p><p>NameSpaceUse heritera de ModelElement</p><p>Classifier.InternalStructure-&gt;BindableInstance</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 609 : 08/11/2005:</strong></p><p>+NamespaceUse (blue link), +Usage</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 608 : 28/09/2005:</strong></p><p>+StaticDiagram.pdeProperties</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 607 :</strong></p><p>?????????</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 606 :</strong></p><p>Classifier.InternalStructure : Collaboration</p><p>---&gt; Classifier.InternalStructure : Instance (15/09/2005)</p><p>&nbsp;</p><p><strong>6.0&nbsp;&nbsp;&nbsp; - 605 :</strong></p><p>added links from LinkEnd to RequiredInterface &amp;ProvidedInterface (15/09/2005)</p><p>&nbsp;</p><p><strong>5.5.01 - 604 :</strong></p><p>added multi stereotype support</p><p>&nbsp;</p><p><strong>5.5.01 - 603 :</strong></p><p>renamed SoBase::filename to SoBase::stamp</p><p>&nbsp;</p><p><strong>5.5.01 - 602 :</strong></p><p>SoStereotype &amp; Stereotype attributes added (J metaclasses for stereotypes)</p><p>&nbsp;</p><p><strong>5.5.01 - 601 :</strong></p><p>destruction Note.Annotation-&gt;TaggedValue &amp; Note.LocalAnnotation obsoletes (27/05/2005)</p><p>&nbsp;</p><p><strong>5.5.01 - 600 :</strong></p><p>ajout des classes&nbsp; &quot;RaisedException&quot;, &quot;RequiredInterface&quot;, &quot;ProvidedInterface&quot;.</p><p>&quot;Note&quot; promu &quot;ModelElement&quot;.</p><p>&nbsp;</p><p><strong>5.5.01 - 1&nbsp;&nbsp; :</strong></p><p>1er metamodele UML2</p>
 * 
 */
@objid ("054946ef-be6f-4142-add6-5c511cf497c1")
public final class StandardMetamodel {
    @objid ("7e8b9e74-b8d4-4f51-9669-5f4681767d29")
    public static String NAME = "Standard";

    @objid ("b11d67d8-c204-46f7-aa59-84bbc0eb1649")
    public static String PROVIDER = "Modeliosoft";

    @objid ("84729c85-f962-4a88-9425-5bc47be6fb06")
    public static String VERSION = "2.3.00";

}
